Odpovědi na tuto otázku představují úsilí komunity. Upravte stávající odpovědi a vylepšete tento příspěvek. V současné době nepřijímá nové odpovědi ani interakce. Jak mohu přesměrovat uživatele z jedné stránky na druhou pomocí jQuery nebo čistého JavaScriptu?
1 2 další Nelze jednoduše přesměrovat pomocí jQuery jQuery není nutné a window.location.replace (...) bude nejlépe simulovat přesměrování HTTP. window.location.replace (...) je lepší než použití window.location.href, protože replace () nezachová původní stránku v historii relace, což znamená, že se uživatel nezasekne v nekonečném back- fialové tlačítko. Pokud chcete někoho simulovat kliknutím na odkaz, použijte location.href Pokud chcete simulovat přesměrování HTTP, použijte location.replace Například: // podobné chování jako přesměrování HTTP window.location.replace ("http://stackoverflow.com"); // podobné chování jako kliknutí na odkaz window.location.href = "http://stackoverflow.com"; | UPOZORNĚNÍ: Tato odpověď byla poskytnuta pouze jako možné řešení; zjevně to není nejlepší řešení, protože vyžaduje jQuery. Místo toho upřednostňujte čisté řešení JavaScriptu. $ (location) .attr ('href', 'http://stackoverflow.com') | Standardní „vanilkový“ způsob JavaScript k přesměrování stránky window.location.href = 'newPage.html'; Nebo jednodušeji: (protože okno je globální) location.href = 'newPage.html'; Pokud jste zde, protože při přesměrování ztrácíte HTTP_REFERER, pokračujte ve čtení: (Jinak tuto poslední část ignorujte) Následující část je pro ty, kteří používají HTTP_REFERER jako jedno z mnoha bezpečnostních opatření (i když to není velké ochranné opatření). Pokud používáte Internet Explorer 8 nebo nižší, tyto proměnné se ztratí při použití jakékoli formy přesměrování stránky JavaScriptu (location.href atd.). Níže budeme implementovat alternativu pro IE8 a nižší, abychom neztratili HTTP_REFERER. Jinak můžete téměř vždy jednoduše použít window.location.href. Testování na HTTP_REFERER (vkládání URL, relace atd.) Může pomoci zjistit, zda je požadavek legitimní. (Poznámka: Existují také způsoby, jak tyto referrery obejít / zfalšovat, jak je uvedeno v odkazu droop v komentářích) Jednoduché řešení testování mezi prohlížeči (záložní k window.location.href pro Internet Explorer 9+ a všechny ostatní prohlížeče) Použití: redirect ('anotherpage.aspx'); přesměrování funkce (url) { var ua = navigator.userAgent.toLowerCase (), isIE = ua.indexOf ('msie')! == -1, verze = parseInt (ua.substr (4, 2), 10); // Internet Explorer 8 a nižší if (isIE && verze <9) { var link = document.createElement ('a'); link.href = url; document.body.appendChild (odkaz); link.click (); } // Všechny ostatní prohlížeče mohou používat standardní window.location.href (neztrácejí HTTP_REFERER jako Internet Explorer 8 a nižší) else { window.location.href = url; } } | Existuje mnoho způsobů, jak toho dosáhnout. // window.location window.location.replace ('http://www.example.com') window.location.assign ('http://www.example.com') window.location.href = 'http://www.example.com' document.location.href = '/ cesta' // window.history window.history.back () window.history.go (-1) // window.navigate; POUZE pro staré verze aplikace Internet Explorer window.navigate ('top.jsp') // Pravděpodobně žádné bueno self.location = 'http://www.example.com'; top.location = 'http://www.example.com'; // jQuery $ (location) .attr ('href', 'http: //www.example.com') $ (window) .attr ('location', 'http: //www.example.com') $ (location) .prop ('href', 'http://www.example.com') | To funguje pro každý prohlížeč: window.location.href = 'your_url'; | Pomohlo by, kdybyste byli trochu popisnější v tom, co se snažíte udělat. Pokud se pokoušíte generovat stránkovaná data, existuje několik možností, jak to provést. Pro každou stránku, na kterou se chcete dostat přímo, můžete vygenerovat samostatné odkazy. 1 2 3 ... Upozorňujeme, že s aktuální stránkou v příkladu je v kódu a v CSS zacházeno odlišně. Pokud chcete, aby se stránkovaná data změnila pomocí AJAX, právě sem by přišel jQuery. Co byste udělali, je přidat obslužný program kliknutí do každé značky ukotvení odpovídající jiné stránce. Tento obslužný program kliknutí by vyvolal nějaký kód jQuery, který jde a načte další stránku prostřednictvím AJAX a aktualizuje tabulku o nová data. Následující příklad předpokládá, že máte webovou službu, která vrací nová data stránky. $ (document) .ready (function () { $ ('a.pager-link'). click (function () { var page = $ (this) .attr ('href'). split (/ \? /) [1]; $ .ajax ({ typ: 'POST', url: '/ path-to-service', data: stránka, success: function (content) { $ ('# myTable'). html (obsah); // nahradit } }); návrat false; // zastavit odkaz }); }); | Také si myslím, že location.replace (URL) je nejlepší způsob, ale pokud chcete upozornit vyhledávače na vaše přesměrování (neanalyzují kód JavaScript, aby viděli přesměrování), měli byste přidat metodu rel = "canonical" přidejte značku na svůj web. Dobrým řešením je také přidání sekce noscript s metaznačkou HTML refresh. Doporučuji použít tento nástroj pro přesměrování JavaScriptu dovytvořit přesměrování. Má také podporu aplikace Internet Explorer, která předává referrer HTTP. Ukázkový kód bez prodlení vypadá takto: | Pokud však někdo chce přesměrovat zpět na domovskou stránku, může použít následující úryvek. window.location = window.location.host Bylo by užitečné, pokud máte tři různá prostředí jako vývoj, staging a produkci. Tento objekt window nebo window.location můžete prozkoumat pouhým vložením těchto slov do Chrome Console nebo Firebug's Console. | JavaScript poskytuje mnoho metod k načtení a změně aktuální adresy URL, která se zobrazuje v adresním řádku prohlížeče. Všechny tyto metody používají objekt Location, který je vlastností objektu Window. Nový objekt umístění, který má aktuální adresu URL, můžete vytvořit následujícím způsobem. var currentLocation = window.location; Základní struktura URL// : / Protokol - Určuje název protokolu, který se použije pro přístup k prostředku v Internetu. (HTTP (bez SSL) nebo HTTPS (s SSL)) název hostitele - název hostitele určuje hostitele, který vlastní prostředek. Například www.stackoverflow.com. Server poskytuje služby pomocí názvu hostitele. port - Číslo portu, které se používá k rozpoznání konkrétního procesu, na který má být předána internetová nebo jiná síťová zpráva, když dorazí na server. pathname - Cesta poskytuje informace o konkrétním prostředku v hostiteli, ke kterému chce webový klient přistupovat. Například stackoverflow.com/index.html. dotaz - Řetězec dotazu sleduje komponentu cesty a poskytuje řetězec informací, které může prostředek využít k nějakému účelu (například jako parametry pro vyhledávání nebo jako data ke zpracování). hash - kotevní část adresy URL, včetně znaku hash (#). S těmito vlastnostmi objektu Location můžete přistupovat ke všem těmto komponentám URL hash - Nastaví nebo vrátí kotevní část adresy URL. hostitel - sady nebo vrátí název hostitele a port adresy URL. hostname -Sets or vrací název hostitele adresy URL. href - Nastaví nebo vrátí celou URL. pathname -Nastaví nebo vrátí název cesty URL. port - Nastaví nebo vrátí číslo portu, který server používá pro URL. protokol - Nastaví nebo vrátí protokol adresy URL. hledat - Sady nebo vrátí dotazovanou část adresy URL Nyní Pokud chcete změnit stránku nebo přesměrovat uživatele na jinou stránku, můžete použít vlastnost href objektu Location takto Můžete použít vlastnost href objektu Location. window.location.href = "http://www.stackoverflow.com"; Location Object mají také tyto tři metody assign () - Načte nový dokument. reload () - Znovu načte aktuální dokument. replace () - Nahradí aktuální dokument novým K přesměrování na jiné podobné stránky můžete použít metody assign () a replace location.assign ("http://www.stackoverflow.com"); location.replace ("http://www.stackoverflow.com"); Jak se liší assign () a replace () - Rozdíl mezi metodou replace () a assign () method () spočívá v tom, že replace () odstraní URL aktuálního dokumentu z historie dokumentu, což znamená, že není možné použít tlačítko „zpět“ pro návrat zpět k původnímu dokumentu. Pokud tedy chcete načíst nový dokument, použijte metodu assign () a chcete dát možnost přejít zpět k původnímu dokumentu. Vlastnost href objektu umístění můžete změnit pomocí jQuery také takto $ (location) .attr ('href', url); A proto můžete uživatele přesměrovat na jinou adresu URL. | V podstatě je jQuery pouze rámec JavaScriptu a pro provádění některých věcí, jako je přesměrování, v tomto případě můžete použít pouze čistý JavaScript, takže v takovém případě máte 3 možnosti použití vanilkyJavaScript: 1) Pomocí funkce Nahradit místo nahradíte aktuální historii stránky, což znamená, že není možné pomocí tlačítka Zpět přejít zpět na původní stránku. window.location.replace ("http://stackoverflow.com"); 2) Použitím přiřazení polohy to udrží historii pro vás a pomocí tlačítka zpět se můžete vrátit na původní stránku: window.location.assign ("http://stackoverflow.com"); 3) Doporučuji použít jeden z těchto předchozích způsobů, ale může to být třetí možnost pomocí čistého JavaScriptu: window.location.href = "http://stackoverflow.com"; Můžete také napsat funkci v jQuery, abyste ji zvládli, ale nedoporučuje se to, protože je to pouze jedna funkce čistého JavaScriptu, také můžete použít všechny výše uvedené funkce bez okna, pokud již jste v oboru okna, například window.location.replace („http://stackoverflow.com“); může být location.replace ("http://stackoverflow.com"); Také je všechny zobrazuji na obrázku níže: | Mělo by být možné nastavit pomocí window.location. Příklad: window.location = "https://stackoverflow.com/"; Zde je minulý příspěvek na toto téma: Jak mohu přesměrovat na jinou webovou stránku? | Než začnu, jQuery je knihovna JavaScriptu používaná pro manipulaci s DOM. Neměli byste tedy používat jQuery pro přesměrování stránky. Citát z Jquery.com: Zatímco jQuery může běžet bez větších problémů ve starších verzích prohlížeče, jQuery v nich aktivně netestujeme a obecně neopravujeme chyby které se v nich mohou objevit. Nalezeno zde: https://jquery.com/browser-support/ JQuery tedy není konečné řešení pro zpětnou kompatibilitu. Následující řešení využívající surový JavaScript funguje ve všech prohlížečích a je již dlouhou dobu standardem, takže pro podporu různých prohlížečů nepotřebujete žádné knihovny. Tato stránka bude přesměrována na Google po 3 000 milisekundách příklad Brzy budete přesměrováni na google.